#ifndef B_QUEEN_H
#define B_QUEEN_H

#include "chesspiece.h"


class Queen : public ChessPiece
{
public:
    Queen();
    Queen(int row , int col , Color color);
    virtual ~Queen();
    virtual ImageName GetImage();
    virtual void setCell(int row, int col);
    virtual void setImage();
    virtual Color GetColor();
    virtual int getValue();
    virtual void GetAllPossible(std::vector <Cell>  & moves);
    virtual bool isPiece();
    void SearchEvenMoreMoves(std::vector<Cell> &moves);
    void SearchMoreMoves(std::vector<Cell> &moves);
    static bool TestCheck(std::ostream &os);
    static bool TestMoves(std::ostream &os);
    static bool Test(std::ostream &os);
    void iHateCheckstyle(int row, int col, bool &threeStop, int i, std::vector<Cell> &moves);
    void iHateCheckstyle2(int row, int col, bool &threeStop, int i, std::vector<Cell> &moves);
};

#endif // B_QUEEN_H
